Information processing apparatus, control method for information processing apparatus, and recording medium recording control program for information processing apparatus

ABSTRACT

An information processing apparatus includes: a memory; and a processor coupled to the memory and configured to: perform an arithmetic operation using an arithmetic operation target; repeat the arithmetic operation by using a calculated arithmetic operation result; obtain a ratio of, in a first number of elements which are included in the arithmetic operation result, a second number of elements in an expressible range as a predetermined-bit fixed point; and perform the arithmetic operation by using the predetermined-bit fixed point based on the ratio.

CROSS-REFERENCE TO RELATED APPLICATION

This application is based upon and claims the benefit of priority of theprior Japanese Patent Application No. 2019-32730, filed on Feb. 26,2019, the entire contents of which are incorporated herein by reference.

FIELD

The embodiments discussed herein are related to an informationprocessing apparatus, a control method for the information processingapparatus, and a control program for the information processingapparatus.

BACKGROUND

In recent years, as deep learning and machine learning attractattention, a processor that can perform an arithmetic operationperformed in learning at high speed attracts attention.

Japanese Laid-open Patent Publication No. 06-96048 and JapaneseLaid-open Patent Publication No. 08-36644 are disclosed as related art.

SUMMARY

According to an aspect of the embodiments, an information processingapparatus includes: a memory; and a processor coupled to the memory andconfigured to: perform an arithmetic operation using an arithmeticoperation target; repeat the arithmetic operation by using a calculatedarithmetic operation result; obtain a ratio of, in a first number ofelements which are included in the arithmetic operation result, a secondnumber of elements in an expressible range as a predetermined-bit fixedpoint; and perform the arithmetic operation by using thepredetermined-bit fixed point based on the ratio.

The object and advantages of the invention will be realized and attainedby means of the elements and combinations particularly pointed out inthe claims.

It is to be understood that both the foregoing general description andthe following detailed description are exemplary and explanatory and arenot restrictive of the invention.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a hardware configuration diagram of an information processingapparatus;

FIG. 2 is a diagram for explaining a process of learning;

FIG. 3 is a block diagram of an information processing apparatusaccording to a first embodiment;

FIG. 4 is a diagram of an example of registration information in anarithmetic data type database according to the first embodiment;

FIG. 5 is a diagram of an example of registration information in anexpressible ratio database according to the first embodiment;

FIG. 6 is a diagram for explaining arithmetic data type determinationprocessing according to the first embodiment;

FIG. 7 is a sequence diagram of the arithmetic data type determinationprocessing by the information processing apparatus according to thefirst embodiment;

FIGS. 8A and 8B are a flowchart of the arithmetic data typedetermination processing according to the first embodiment;

FIG. 9 is a diagram illustrating learning by using two informationprocessing apparatuses;

FIG. 10 is a diagram of an example of registration information in anexpressible ratio database according to a second embodiment;

FIG. 11 is a diagram of an example of registration information in anarithmetic data type database according to the second embodiment;

FIG. 12 is a diagram for explaining arithmetic data type determinationprocessing according to the second embodiment;

FIGS. 13A and 13B are a flowchart of the arithmetic data typedetermination processing according to the second embodiment;

FIG. 14 is a block diagram of an information processing apparatusaccording to a third embodiment;

FIG. 15 is a diagram for explaining arithmetic data type transition;

FIG. 16 is a sequence diagram of arithmetic data type determinationprocessing by the information processing apparatus according to thethird embodiment; and

FIGS. 17A and 17B are a flowchart of the arithmetic data typedetermination processing according to the third embodiment.

DESCRIPTION OF EMBODIMENTS

Hereinafter, there is a case where deep learning and machine learningare collectively referred to as learning. A Graphics Processing Unit(GPU) that can perform tensor operations in parallel and accelerate thearithmetic operation particularly attracts attention from among theprocessors used for learning. However, the GPU is a processor that isdeveloped in order to execute 3 Dimension (D) graphics processing and isnot optimized for learning. Therefore, when performing learning, the GPUperforms an arithmetic operation using a 32-bit floating pointregardless of a stage of the processing. From this, in consideration ofan index of electric power performance, it can be said that the GPU hasroom for optimization with respect to learning.

Under such a situation, various companies have developed processors thatare optimized for learning. The arithmetic operation of learning ismainly a tensor operation which is not different from a tensor operationperformed in the 3D graphic processing. However, deep learning andmachine learning have a feature in which a variation in values ofarithmetic operation elements used for the tensor operation decreases aslearning is proceeded. Focusing on special properties of the arithmeticoperation performed in such learning, companies have introduced aprocessor that performs inference operations with 8-bit integers and aprocessor that performs learning operations with 16-bit floating pointsfor machine learning. A goal of these processors is to improve anelectric power performance by deteriorating arithmetic operationaccuracy and performing the arithmetic operation.

Moreover, hardware exists that performs an arithmetic operation with a32-bit floating point in previous learning that is a first half phase ofa learning arithmetic operation loop and switches the arithmeticoperation to a learning arithmetic operation with 8-bit integers at thetime when the previous learning is completed. This hardware uses the8-bit integer as a fixed point and determines the decimal point positionfrom an output result at the time of the learning arithmetic operationin a previous iteration. The iteration means a single loop of thelearning arithmetic operation for determining a parameter in learningthat is repeatedly performed. With this operation, it is not necessaryto perform arithmetic operations twice, i.e., an arithmetic operation todetermine a decimal point position and an arithmetic operation after thedetermination of the decimal point position, and the number of times ofarithmetic operations is reduced. Furthermore, there is a typicaltechnology that acquires image data as concentration data or binarizeddata, performs learning and recognition, and accelerates imagerecognition.

However, arithmetic operation accuracy of the processor that has beendeveloped for deep learning and machine learning is determined inadvance depending on hardware, and it is difficult to cope with thefeature of learning such that a change in a value of an arithmeticoperation element used for an arithmetic operation decreases as learningis proceeded. Therefore, it is difficult for the processor that has beendeveloped for deep learning and machine learning to improve a learningefficiency.

Furthermore, the hardware that switches the arithmetic operation withthe 32-bit floating point to the learning arithmetic operation with the8-bit integers at the time when the previous learning is completed doesnot switch the arithmetic operation during learning. Therefore, it isdifficult for the hardware to cope with the change in the value of thearithmetic operation element in the arithmetic operation duringlearning. Therefore, even if such hardware is used, it is difficult toimprove the learning efficiency. Furthermore, even if the typicaltechnology that that acquires image data as concentration data orbinarized data and performs learning and recognition is used, it isdifficult to cope with the change in the value of the arithmeticoperation element in the arithmetic operation during learning, and thereis a possibility that the learning efficiency is deteriorated.

Moreover, in a case where the 8-bit fixed point is used after apredetermined stage of the previous learning in which the decimal pointposition is largely changed, there is a possibility that learning is notproceeded due to the large change in the decimal point position.Therefore, in order to avoid stagnation of learning, a method isconsidered for determining the number of learning arithmetic operationloops by a user by trial and error as a timing for switching to thearithmetic operation using the 8-bit fixed point. However, it isdifficult for the user to designate the number of learning arithmeticoperation loops to set an appropriate switching timing, and there is apossibility that the learning efficiency of machine learning isdeteriorated.

An information processing apparatus, a control method for theinformation processing apparatus, and a control program for theinformation processing apparatus that improve a learning efficiency ofdeep learning and machine learning may be provided.

Embodiments of an information processing apparatus, a control method forthe information processing apparatus, and a control program for theinformation processing apparatus disclosed in the present applicationwill be described in detail below with reference to the drawings. Notethat the information processing apparatus, the control method for theinformation processing apparatus, and the control program for theinformation processing apparatus disclosed in the present applicationare not limited to the following embodiments.

First Embodiment

FIG. 1 is a hardware configuration diagram of an information processingapparatus. An information processing apparatus 1 performs deep learning.The information processing apparatus 1 that performs deep learning willbe described below. However, an information processing apparatus thatperforms machine learning has a similar function. There is a case wherethe information processing apparatus 1 is referred to as a node. Asillustrated in FIG. 1, the information processing apparatus 1 includes aCentral Processing Unit (CPU) 11, a deep learning processor 12, a memory13, a storage 14, and a network interface 15.

The CPU 11 performs an arithmetic operation that is not performed by thedeep learning processor 12. For example, the CPU 11 executes systemprogram processing and the like.

The deep learning processor 12 is a processor specialized for anarithmetic operation of deep learning. The deep learning processor 12can perform a deep learning arithmetic operation at higher speed thanthe CPU 11.

The memory 13 is a volatile memory. The memory 13 temporarily holdslearning data read from the storage 14 until the data is read to aprocessor for deep learning and is transferred.

The storage 14 is a nonvolatile memory such as a Hard Disk Drive (HDD)or a Solid State Drive (SSD). The storage 14 stores data used when deeplearning is performed by the information processing apparatus 1.

The network interface 15 is an interface to connect to anotherinformation processing apparatus 1 via Ethernet (registered trademark)or InfiniBand (registered trademark). The network interface 15 relaystransmission and reception of data between the CPU 11 and a CPU 11mounted in the other information processing apparatus 1.

The information processing apparatus 1 performs deep learning by using amultilayer neural network as illustrated in FIG. 2. FIG. 2 is a diagramfor explaining a process of learning. The information processingapparatus 1 enhances recognition accuracy by repeating an arithmeticoperation in each layer. For example, as illustrated in FIG. 2, in acase where arithmetic operations #1 to #N are performed in therespective layers, the information processing apparatus 1 repeats thearithmetic operations #1 to #N by using learning data. Here, asillustrated in FIG. 2, a learning period 2 in which the arithmeticoperations #1 to #N are performed once in the repetition is referred toas an iteration. For example, the information processing apparatus 1completes deep learning by repeating the iteration a plurality of times.

Next, a function of deep learning of the information processingapparatus 1 according to the present embodiment will be described withreference to FIG. 3. FIG. 3 is a block diagram of the informationprocessing apparatus according to the first embodiment.

As illustrated in FIG. 3, the information processing apparatus 1includes a deep learning framework 100 and a learning data storage unit200. The learning data storage unit 200 is implemented by, for example,the storage 14 illustrated in FIG. 1. The learning data storage unit 200stores a plurality of pieces of learning data used in deep learning inadvance.

The deep learning framework 100 is a software library group developed toeasily create a deep learning application. The deep learning framework100 is implemented by the CPU 11, the deep learning processor 12, andthe memory 13 illustrated in FIG. 1.

The deep learning framework 100 includes a user application 101, anexecution control unit 102, an arithmetic operation unit 103, anarithmetic data type determination unit 104, a learning data readingunit 105, an arithmetic data type database 106, and an expressible ratiodatabase 107. For example, functions of the user application 101, theexecution control unit 102, the arithmetic data type determination unit104, and the learning data reading unit 105 are implemented by the CPU11. A function of the arithmetic operation unit 103 is implemented bythe deep learning processor 12. Furthermore, the arithmetic data typedatabase 106 and the expressible ratio database 107 are disposed in thememory 13.

The user application 101 is a deep learning application created by anoperator. The user application 101 instructs the execution control unit102 to perform deep learning.

The arithmetic data type database 106 is a database in which one ofarithmetic data types of 32-bit floating point or 8-bit fixed point usedin each arithmetic operation included in each layer is registered. FIG.4 is a diagram of an example of registration information of anarithmetic data type database according to the first embodiment. Asillustrated in FIG. 4, the arithmetic data type database 106 holds anarithmetic data type used in each arithmetic operation in associationwith an arithmetic Identification (ID). The arithmetic ID isidentification information that is uniquely set with respect to eacharithmetic operation performed during one iteration. For example, in astate of FIG. 4, a 32-bit floating point is used in the arithmeticoperation #1. Furthermore, 8-bit fixed points are used in the arithmeticoperations #2 to #4.

The expressible ratio database 107 is a database in which a ratio of atensor element number that can be expressed by the 8-bit fixed point byusing a predetermined decimal point position of the tensor elementnumber included in the arithmetic operation result in each iteration isregistered. Here, the tensor element number is a value of each elementincluded in an arithmetic operation target used for a tensor operationperformed in each layer in each iteration. The arithmetic operationtarget is an operand such as a numerical value or a matrix used for thearithmetic operation. For example, in a case where a k*k matrix is anarithmetic operation target in the tensor arithmetic operation, each ofk*k matrix elements included in the k*k matrix is the tensor elementnumber.

FIG. 5 is a diagram of an example of registration information in anexpressible ratio database according to the first embodiment. Asillustrated in FIG. 5, in the expressible ratio database 107, thearithmetic ID and the ratio are registered in association with aniteration ID. The iteration ID is an identifier that is uniquely set foreach iteration at a learning stage of deep learning. For example, in theexpressible ratio database 107 illustrated in FIG. 5, a ratio of atensor element number that can be expressed from a decimal pointposition in a case where an 8-bit fixed point included in an arithmeticoperation result of an arithmetic operation #1 in an iteration havingthe iteration ID of it1 is used is 20.6%. Hereinafter, the ratio of thetensor element number that can be expressed from the decimal pointposition in a case where an 8-bit fixed point is used is referred to asan “expressible ratio”.

The execution control unit 102 integrally controls processing of deeplearning. The execution control unit 102 includes an arithmeticoperation instruction unit 121, an arithmetic data type request unit122, a database update instruction unit 123, and a data reading controlunit 124.

Upon receiving an input of an instruction to perform deep learning fromthe user application 101, the database update instruction unit 123instructs an arithmetic data type decision unit 141 of the arithmeticdata type determination unit 104 to initialize the arithmetic data typedatabase 106. Furthermore, the database update instruction unit 123instructs the arithmetic data type decision unit 141 of the arithmeticdata type determination unit 104 to initialize the expressible ratiodatabase 107.

Next, the database update instruction unit 123 outputs a notification ofcompletion of database initialization to the data reading control unit124. Thereafter, the database update instruction unit 123 acquires anarithmetic operation result from the arithmetic operation unit 103 eachtime when each arithmetic operation in each iteration is terminated.Then, the database update instruction unit 123 outputs the acquiredarithmetic operation result to the database update unit 142 andinstructs to update the expressible ratio database 107.

The data reading control unit 124 receives an input of the notificationof the completion of the database initialization from the databaseupdate instruction unit 123. Moreover, the data reading control unit 124receives a request for acquiring learning data used for learning fromthe arithmetic operation instruction unit 121. Then, the data readingcontrol unit 124 instructs the learning data reading unit 105 to readthe learning data used for learning. Thereafter, the data readingcontrol unit 124 acquires the learning data used for learning from thelearning data reading unit 105. Then, the data reading control unit 124outputs the acquired learning data to the arithmetic operationinstruction unit 121.

Thereafter, the data reading control unit 124 receives a request foracquiring the learning data from the arithmetic operation instructionunit 121 each time when the iteration is terminated. Then, the datareading control unit 124 instructs the learning data reading unit 105 toread the learning data and acquires the learning data for eachiteration, and outputs the acquired learning data to the arithmeticoperation instruction unit 121.

The arithmetic operation instruction unit 121 acquires the instructionto perform deep learning input from the user application 101. Then, thearithmetic operation instruction unit 121 executes following processingat the time when each iteration is started.

The arithmetic operation instruction unit 121 outputs the request foracquiring the learning data used for learning to the data readingcontrol unit 124. Then, the arithmetic operation instruction unit 121receives an input of the learning data from the data reading controlunit 124 as a response to the acquisition request.

Next, the arithmetic operation instruction unit 121 outputs anarithmetic data type transmission request to the arithmetic data typerequest unit 122. Thereafter, the arithmetic operation instruction unit121 acquires the input of the arithmetic data type used in eacharithmetic operation in the next iteration from the arithmetic data typerequest unit 122 as a response to the transmission request. For example,the 32-bit floating points are used in all the arithmetic operations inthe first iteration. Thereafter, the arithmetic operation instructionunit 121 outputs the learning data and the arithmetic data type used ineach arithmetic operation to the arithmetic operation unit 103 andfurther instructs to perform an arithmetic operation.

Thereafter, the arithmetic operation instruction unit 121 receives aninput of an iteration completion notification from the arithmeticoperation unit 103. Then, the arithmetic operation instruction unit 121repeats processing for acquiring the learning data and the arithmeticdata type and making the arithmetic operation unit 103 perform thearithmetic operation.

The arithmetic operation instruction unit 121 makes the arithmeticoperation unit 103 repeat the arithmetic operation in each layer foreach iteration until deep learning is completed. Here, in a case where apredetermined condition is satisfied, for example, in a case where apredetermined number of times of iteration are terminated or in a casewhere the recognition accuracy exceeds 90%, the arithmetic operationinstruction unit 121 determines that deep learning is completed. Therecognition accuracy is acquired by executing recognition processing byusing test data each time when the predetermined number of times ofiteration are completed.

The arithmetic data type request unit 122 receives the input of thearithmetic data type transmission request from the arithmetic operationinstruction unit 121. Then, the arithmetic data type request unit 122requests the arithmetic data type decision unit 141 to acquire thearithmetic data type. Thereafter, the arithmetic data type request unit122 receives the input of the arithmetic data type to be used in eacharithmetic operation in the next iteration from the arithmetic data typedecision unit 141. Then, the arithmetic data type request unit 122outputs the acquired arithmetic data type to be used in each arithmeticoperation in the next iteration to the arithmetic operation instructionunit 121.

The arithmetic operation unit 103 receives an input of the learning datafrom the arithmetic operation instruction unit 121 at the start of eachiteration. Moreover, the arithmetic operation unit 103 receives theinput of the arithmetic data type to be used in each arithmeticoperation in the next iteration from the arithmetic operationinstruction unit 121. In the first iteration, the arithmetic operationunit 103 receives an instruction to use a 32-bit floating point as thearithmetic data type to be used in each arithmetic operation from thearithmetic operation instruction unit 121. Then, the arithmeticoperation unit 103 performs each arithmetic operation by using the32-bit floating point in each arithmetic operation using the learningdata as an input and terminates the first iteration. Thereafter, thearithmetic operation unit 103 outputs an arithmetic operation result ofeach arithmetic operation to the database update instruction unit 123.Furthermore, when all the arithmetic operations included in theiteration are completed, the arithmetic operation unit 103 outputs theiteration completion notification to the arithmetic operationinstruction unit 121. The arithmetic operation unit 103 repeatsarithmetic operation processing until the instruction to perform thearithmetic operation from the arithmetic operation instruction unit 121is stopped.

The arithmetic data type determination unit 104 includes the arithmeticdata type decision unit 141 and the database update unit 142.

The database update unit 142 receives an instruction to initialize theexpressible ratio database 107 from the database update instruction unit123. Then, the database update unit 142 deletes all the registrationinformation in the expressible ratio database 107 and initializes theexpressible ratio database 107.

Thereafter, the database update unit 142 receives an input of thearithmetic operation result of each arithmetic operation each time whenthe iteration is completed from the database update instruction unit123. Then, the database update unit 142 determines an appropriatedecimal point position to express each tensor element number included inthe arithmetic operation result of each arithmetic operation.Thereafter, the database update unit 142 determines whether or not theeach tensor element number included in the arithmetic operation resultof each arithmetic operation can be expressed by using the 8-bit fixedpoint at the determined decimal point position. This 8-bit fixed pointis an example of a “predetermined-bit fixed point”.

Next, the database update unit 142 calculates a ratio of the tensorelement number that can be expressed by using an 8-bit fixed point fromthe determined decimal point position in the arithmetic operation resultof each arithmetic operation. Thereafter, the database update unit 142registers the expressible ratio, which is the ratio of the tensorelement number that can be expressed by using the 8-bit fixed point fromthe determined decimal point position in each arithmetic operation foreach iteration, to the expressible ratio database 107.

Here, calculation of the expressible ratio by the database update unit142 will be described in detail. In a case where the decimal pointposition is Q₈, Q₈ is determined by the following formula (1).

[Mathematical Formula 1]

Q ₈=8−ceil(log₂ max(|x min|, x max))−1  (1)

The reference x min indicates a minimum value of the tensor elementnumber. Furthermore, the reference x max indicates a maximum value ofthe tensor element number. Then, the ceil(X) is a function for obtaininga smallest integer that exceeds X. For example, the decimal pointposition Q₈ is calculated by a value obtained by subtracting the numberof bits in the integer part in a case where a larger one of an absolutevalue of the minimum value of the tensor element number or the maximumvalue of the tensor element number is represented by a binary number andone bit of a sign bit from eight bits. In this case, a range R of avalue that can be expressed by the decimal point position Q₈ is of−128×2^(−Q) to 127×2^(−Q).

Therefore, a ratio P of the tensor element number that can be expressedis calculated by the following formula (2) in which the tensor elementnumber is N.

$\begin{matrix}\left\lbrack {{Mathematical}\mspace{14mu} {Formula}\mspace{14mu} 2} \right\rbrack & \; \\{P_{8} = \frac{\begin{matrix}{{THE}\mspace{14mu} {NUMBER}\mspace{14mu} {OF}\mspace{14mu} {TENSOR}\mspace{14mu} {ELEMENTS}\mspace{14mu} {OF}} \\{{WHICH}\mspace{14mu} {VALUE}\mspace{14mu} {IS}\mspace{14mu} {WITHIN}\mspace{14mu} {RANGE}\mspace{14mu} R_{8}}\end{matrix}}{N}} & (2)\end{matrix}$

For example, the database update unit 142 calculates the expressibleratio in each arithmetic operation from the formula (2) by using therange R in a case of the decimal point position Q₈ obtained by theformula (1).

The arithmetic data type decision unit 141 receives the instruction toinitialize the arithmetic data type database 106 from the databaseupdate instruction unit 123. Then, the arithmetic data type decisionunit 141 registers the arithmetic data type to be used in eacharithmetic operation to the arithmetic data type database 106 as a32-bit floating point and initializes the arithmetic data type database106.

Thereafter, the arithmetic data type decision unit 141 receives arequest for transmitting the arithmetic data type of each arithmeticoperation from the arithmetic data type request unit 122. Next, thearithmetic data type decision unit 141 confirms the arithmetic data typedatabase 106 and acquires a current arithmetic data type of eacharithmetic operation. Then, the arithmetic data type decision unit 141specifies an arithmetic operation in which the 8-bit fixed point hasbeen already set as the arithmetic data type. The arithmetic data typedecision unit 141 notifies an 8-bit fixed point of the specifiedarithmetic operation, in which the 8-bit fixed point has been alreadyset as the arithmetic data type, of the arithmetic data type requestunit 122 as the arithmetic data type.

On the other hand, regarding the arithmetic operation in which the32-bit floating point is set as the arithmetic data type, the arithmeticdata type decision unit 141 acquires an expressible ratio of aniteration within a determination range from the latest iteration fromthe expressible ratio database 107.

For example, with reference to FIG. 6, a case will be described wherethe 1504 times of iterations have been terminated at that time. FIG. 6is a diagram for explaining arithmetic data type determinationprocessing according to the first embodiment. A table 170 in FIG. 6 is atable in which the expressible ratio database 107 is rearranged for easyunderstanding.

For example, in a case where the determination range is four times ofiterations, the arithmetic data type decision unit 141 acquires anexpressible ratio in use ranges 71 to 74 in FIG. 6 for each arithmeticoperation. Here, the arithmetic data type at the time of the arithmeticoperations #1 to #4 is a 32-bit floating point. Next, the arithmeticdata type decision unit 141 determines whether or not the expressibleratio in the latest iteration for each arithmetic operation exceeds aratio threshold. For example, in a case where the ratio threshold is setto Tf1, the arithmetic data type decision unit 141 determines whether ornot the following formula (3) is satisfied.

[Mathematical Formula 3]

Pfi>Tf1  (3)

Here, Tf1 that is the ratio threshold of the expressible ratio in thelatest iteration can be set to, for example, 80% to 90%.

In a case where the ratio does not exceed the threshold, it isconsidered that it is difficult to maintain appropriate arithmeticoperation accuracy by expression using the 8-bit fixed point in thestate at that time. Therefore, the arithmetic data type decision unit141 determines the arithmetic data type of the arithmetic operation asthe 32-bit floating point and notifies the determination of thearithmetic data type request unit 122. For example, in a case where theratio threshold is set to 80%, an expressible ratio of an arithmeticoperation #1 in an iteration of which the iteration ID is it1504 in FIG.6 is 46.5% and is equal to or less than the ratio threshold. Therefore,the arithmetic data type decision unit 141 determines the arithmeticdata type of the arithmetic operation #1 as the 32-bit floating point.

On the other hand, regarding the arithmetic operation of which theexpressible ratio exceeds the threshold, the arithmetic data typedecision unit 141 determines whether or not a change in the expressibleratio within the determination range is small. For example, thearithmetic data type decision unit 141 calculates Δf which is afluctuation between iterations in an arithmetic operation f by using thefollowing formula (4). The fluctuation Δf between the iterations in thearithmetic operation f is an example of a “change in a ratio”.

$\begin{matrix}\left\lbrack {{Mathematical}\mspace{14mu} {Formula}\mspace{14mu} 4} \right\rbrack & \; \\{{\Delta \; {fi}} = {\max\limits_{{j\mspace{14mu} {for}\mspace{14mu} i} - {1\mspace{14mu} {to}\mspace{14mu} i}}{{{Pfj} - {Pfi}}}}} & (4)\end{matrix}$

Here, the reference i indicates the number of times of iterations whichhave been completed at that time. Furthermore, the reference I indicatesthe determination range. Then, the reference f indicates any integerfrom i-I to i. Furthermore, the reference Δfi indicates a fluctuationbetween iterations of the arithmetic operation f in an i-th iteration.Then, the reference Poj indicates an expressible ratio in a j-thiteration within the determination range. Furthermore, the reference Poiindicates an expressible ratio in the i-th iteration. For example, thearithmetic data type decision unit 141 calculates a maximum value of adifference between the expressible ratio at that time and theexpressible ratio in the iteration within the determination range as thefluctuation Δfi by using the formula (4).

Next, the arithmetic data type decision unit 141 determines whether ornot the calculated fluctuation is less than a predetermined fluctuationthreshold. For example, in a case where the fluctuation threshold is setto Tf2, the arithmetic data type decision unit 141 determines whether ornot the following formula (5) is satisfied.

[Mathematical Formula 5]

Δfi<Tf2  (5)

In a case where the fluctuation is less than the predeterminedfluctuation threshold, it can be said that the decimal point position ofthe arithmetic operation is likely to converge. Therefore, in a casewhere the calculated fluctuation is less than the fluctuation threshold,the arithmetic data type decision unit 141 determines the arithmeticdata type of the arithmetic operation as the 8-bit fixed point andnotifies the determined arithmetic data type of the arithmetic data typerequest unit 122. On the other hand, in a case where the calculatedfluctuation is equal to or more than the fluctuation threshold, thearithmetic data type decision unit 141 determines the arithmetic datatype of the arithmetic operation as the 32-bit floating point andnotifies the determined arithmetic data type of the arithmetic data typerequest unit 122.

Here, Tf2 that is a fluctuation threshold can be set to, for example,10% to 20%. In a case where the fluctuation threshold is 10%, afluctuation in the use range 73 of the arithmetic operation #3 in FIG. 6is equal to or more than the fluctuation threshold. On the other hand,the fluctuations in the arithmetic operations #2 and #4 are less thanthe fluctuation threshold. Therefore, the arithmetic data type decisionunit 141 determines the arithmetic data type of the arithmetic operation#3 as the 32-bit floating point and determines the arithmetic data typesof the arithmetic operations #2 and #4 as the 8-bit fixed point.

Processing for notifying the 8-bit fixed point as the arithmetic datatype and making the arithmetic operation unit 103 perform the arithmeticoperation by using the 8-bit fixed point via the execution control unit102 corresponds to processing for “making an arithmetic operation unitperform an arithmetic operation by using a predetermined-bit fixedpoint”.

Moreover, the arithmetic data type decision unit 141 registers thedetermined arithmetic data type for each arithmetic operation to thearithmetic data type database 106. As a result, the arithmetic data typedecision unit 141 can confirm which arithmetic data type is used in eacharithmetic operation in the next iteration by using the arithmetic datatype database 106.

The learning data reading unit 105 receives an instruction to read thelearning data used for learning from the data reading control unit 124.Then, the learning data reading unit 105 reads the designated learningdata from the learning data storage unit 200. Thereafter, the learningdata reading unit 105 transmits the read learning data to the datareading control unit 124.

Next, an outline of an entire flow of arithmetic data type determinationprocessing by the information processing apparatus 1 according to thefirst embodiment will be described with reference to FIG. 7. FIG. 7 is asequence diagram of the arithmetic data type determination processing bythe information processing apparatus according to the first embodiment.

The user application 101 outputs an instruction to perform deep learningto the execution control unit 102 (step S101).

When receiving the instruction to perform deep learning from the userapplication 101, the execution control unit 102 instructs the arithmeticdata type determination unit 104 to initialize the arithmetic data typedatabase 106 (step S102).

The arithmetic data type determination unit 104 receives the instructionto initialize the arithmetic data type database 106 and updates thearithmetic data type of each arithmetic operation of the arithmetic datatype database 106 to the 32-bit floating point and initializes thearithmetic data type database 106 (step S103).

Thereafter, the arithmetic data type determination unit 104 notifies thecompletion of the initialization of the arithmetic data type database106 of the execution control unit 102 (step S104).

When receiving a response indicating the completion of theinitialization of the arithmetic data type database 106, the executioncontrol unit 102 instructs the arithmetic data type determination unit104 to initialize the expressible ratio database 107 (step S105).

In response to the instruction to initialize the expressible ratiodatabase 107, the arithmetic data type determination unit 104 deletesdata registered to the expressible ratio database 107 and initializesthe expressible ratio database 107 (step S106).

Thereafter, the arithmetic data type determination unit 104 notifies thecompletion of the initialization of the expressible ratio database 107of the execution control unit 102 (step S107).

When receiving the response indicating the completion of theinitialization of the expressible ratio database 107, the executioncontrol unit 102 instructs the learning data reading unit 105 to readthe learning data to be used for learning (step S108).

In response to the instruction to read the learning data, the learningdata reading unit 105 reads the designated learning data from thelearning data storage unit 200 (step S109).

Thereafter, the learning data reading unit 105 transmits the readlearning data to the execution control unit 102 (step S110).

The execution control unit 102 acquires the learning data from thelearning data reading unit 105. Next, the execution control unit 102outputs a request for acquiring the arithmetic data type to be used ineach arithmetic operation in the next iteration to the arithmetic datatype determination unit 104 (step S111).

When receiving the request to acquire the arithmetic data type, thearithmetic data type determination unit 104 determines the arithmeticdata type to be used in each arithmetic operation by using thearithmetic data type database 106 and the expressible ratio database 107(step S112).

Then, the arithmetic data type determination unit 104 outputs anotification indicating the determined arithmetic data type used in eacharithmetic operation to the execution control unit 102 (step S113).

The execution control unit 102 acquires the arithmetic data type to beused in each arithmetic operation. Then, the execution control unit 102outputs the acquired learning data to the arithmetic operation unit 103and notifies the arithmetic data type to be used in each arithmeticoperation of the arithmetic operation unit 103 and makes the arithmeticoperation unit 103 perform the arithmetic operation (step S114).

Thereafter, the execution control unit 102 receives an input of thearithmetic operation result from the arithmetic operation unit 103 (stepS115).

Next, the execution control unit 102 outputs the acquired arithmeticoperation result to the arithmetic data type determination unit 104 andinstructs to update the expressible ratio database 107 (step S116).

The arithmetic data type determination unit 104 calculates anexpressible ratio by using the tensor element number included in thearithmetic operation result, registers the calculated expressible ratio,and updates the expressible ratio database 107 (step S117).

Thereafter, the arithmetic data type determination unit 104 outputs anotification indicating update completion of the expressible ratiodatabase 107 to the execution control unit 102 (step S118).

Next, the execution control unit 102 instructs the arithmetic data typedetermination unit 104 to update the arithmetic data type database 106(step S119).

The arithmetic data type determination unit 104 registers the arithmeticdata type used in each arithmetic operation in the latest iteration andupdates the arithmetic data type database 106 (step S120).

Thereafter, the arithmetic data type determination unit 104 outputs anotification indicating the update completion of the arithmetic datatype database 106 to the execution control unit 102 (step S121).

The execution control unit 102 receives the input of the notificationindicating the update completion of the arithmetic data type database106 from the execution control unit 102. The execution control unit 102,the arithmetic operation unit 103, the arithmetic data typedetermination unit 104, and the learning data reading unit 105 repeatsteps S111 to S121 until all the arithmetic operations included in oneiteration are completed. Moreover, the execution control unit 102, thearithmetic operation unit 103, the arithmetic data type determinationunit 104, and the learning data reading unit 105 repeat steps S108 toS121 until deep learning is completed. Thereafter, the execution controlunit 102 notifies the completion of deep learning of the userapplication 101 (step S122).

Next, a detailed flow of the arithmetic data type determinationprocessing according to the first embodiment will be described withreference to FIGS. 8A and 8B. FIGS. 8A and 8B are a flowchart of thearithmetic data type determination processing according to the firstembodiment.

Upon receiving the instruction to perform deep learning from the userapplication 101, the database update instruction unit 123 outputs aninstruction to initialize the arithmetic data type database 106 to thearithmetic data type decision unit 141. Furthermore, the database updateinstruction unit 123 outputs an instruction to initialize theexpressible ratio database 107 to the database update unit 142. Thearithmetic data type decision unit 141 changes the arithmetic data typeof each arithmetic operation registered to the arithmetic data typedatabase 106 to the 32-bit floating point and initializes the arithmeticdata type database 106. Furthermore, the database update unit 142deletes the expressible ratio registered to the expressible ratiodatabase 107 and initializes the expressible ratio database 107. Withthis operation, the arithmetic data type determination unit 104initializes the database (step S201).

The data reading control unit 124 receives a notification indicating theinitialization completion of the database from the database updateinstruction unit 123. Furthermore, the data reading control unit 124receives a request for acquiring the learning data from the arithmeticoperation instruction unit 121. Then, the data reading control unit 124outputs a request for reading the learning data to the learning datareading unit 105. In response to the request for reading the learningdata, the learning data reading unit 105 reads learning data designatedfrom the learning data storage unit 200 (step S202). Thereafter, thelearning data reading unit 105 outputs the read learning data to thedata reading control unit 124. The data reading control unit 124 outputsthe acquired learning data to the arithmetic operation instruction unit121.

The arithmetic operation instruction unit 121 selects a next arithmeticoperation in an iteration from the instruction to perform deep learninginput from the user application 101 (step S203).

Then, the arithmetic operation instruction unit 121 outputs a requestfor acquiring an arithmetic data type used in the selected arithmeticoperation to the arithmetic data type decision unit 141. Upon receivingthe acquisition request, the arithmetic data type decision unit 141acquires an expressible ratio in an iteration within a use range of theselected arithmetic operation from the expressible ratio database 107(step S204). However, in a case where the iteration is not proceeded anditerations within the use range are not obtained, the arithmetic datatype decision unit 141 determines that an error occurs in theacquisition of the expressible ratio.

Next, the arithmetic data type decision unit 141 calculates afluctuation in the expressible ratio by using the acquired expressibleratio in the formula (4) (step S205). However, in a case where an erroroccurs in the acquisition of the expressible ratio, the arithmetic datatype decision unit 141 does not calculate the fluctuation in theexpressible ratio and remains the fluctuation to be uncalculated.

Next, the arithmetic data type decision unit 141 determines whether ornot the selected arithmetic operation has been already performed usingthe 8-bit fixed point (step S206). In a case where the arithmeticoperation has been already performed using the 8-bit fixed point (stepS206: yes), the arithmetic data type decision unit 141 maintains thearithmetic data type used in the selected arithmetic operation as the8-bit fixed point, and the procedure proceeds to step S210.

On the other hand, in a case where the arithmetic operation has not beenperformed yet by using the 8-bit fixed point (step S206: no), thearithmetic data type decision unit 141 determines whether or not thefluctuation in the expressible ratio is less than the fluctuationthreshold (step S207).

In a case where the fluctuation in the expressible ratio is less thanthe fluctuation threshold (step S207: yes), the arithmetic data typedecision unit 141 determines whether or not the latest expressible ratiois larger than the ratio threshold (step S208).

In a case where the latest expressible ratio is larger than the ratiothreshold (step S208: yes), the arithmetic data type decision unit 141determines the arithmetic data type as the 8-bit fixed point.Thereafter, the arithmetic data type decision unit 141 notifies of thearithmetic operation instruction unit 121 that the 8-bit fixed point isused as the arithmetic data type of the selected arithmetic operationand changes the arithmetic data type to the 8-bit fixed point. (stepS209).

The arithmetic operation instruction unit 121 makes the arithmeticoperation unit 103 perform the selected arithmetic operation by usingthe 8-bit fixed point (step S210).

On the other hand, in a case where the fluctuation is not less than thefluctuation threshold (step S207: no) or in a case where the latestexpressible ratio is equal to or less than the ratio threshold (stepS208: no), the arithmetic data type decision unit 141 maintains thearithmetic data type of the selected arithmetic operation as the 32-bitfloating point. Here, in a case where the fluctuation in the expressibleratio is not calculated, the arithmetic data type decision unit 141determines that the fluctuation is not less than the fluctuationthreshold. In this case, in the present embodiment, the arithmetic datatype decision unit 141 does not notify the instruction to change thearithmetic data type of the arithmetic operation instruction unit 121.However, the arithmetic data type decision unit 141 may notify of thearithmetic operation instruction unit 121 that the 32-bit floating pointis used as the arithmetic data type of the selected arithmeticoperation. The arithmetic operation instruction unit 121 makes thearithmetic operation unit 103 perform the selected arithmetic operationby using the 32-bit floating point (step S211).

Thereafter, the arithmetic data type request unit 122 acquires thearithmetic operation result of the selected arithmetic operation fromthe arithmetic operation unit 103. Then, the arithmetic data typerequest unit 122 outputs the acquired arithmetic operation result to thedatabase update unit 142 and instructs to update the expressible ratiodatabase 107. The database update unit 142 calculates the expressibleratio by using the tensor element number included in the inputarithmetic operation result (step S212).

Next, the database update unit 142 stores the calculated expressibleratio in the expressible ratio database 107 (step S213).

The arithmetic operation instruction unit 121 determines whether or notall the arithmetic operation processing in one iteration is completedaccording to whether or not the iteration completion notification isacquired from the arithmetic operation unit 103 (step S214). In a casewhere there is arithmetic operation processing that is not executed yet(step S214: no), the arithmetic operation instruction unit 121 returnsto step S203.

On the other hand, in a case where all the arithmetic operationprocessing in one iteration has been completed (step S214: yes), thearithmetic operation instruction unit 121 determines whether or not deeplearning is completed (step S215). In a case where deep learning is notcompleted (step S215: no), the arithmetic operation instruction unit 121returns to step S202.

On the other hand, in a case where deep learning is completed (stepS215: yes), the arithmetic operation instruction unit 121 notifies thecompletion of deep learning of the user application 101. Then, thearithmetic operation instruction unit 121 terminates deep learningincluding switching of the arithmetic data types.

As described above, the information processing apparatus according tothe present embodiment obtains the expressible ratio of the number ofelements included in the arithmetic operation result with the 8-bitfixed point, and if the obtained expressible ratio is equal to or morethan the threshold and the fluctuation is less than the threshold, theinformation processing apparatus switches the arithmetic data type tothe 8-bit fixed point. In this way, since the arithmetic data type isautomatically switched at the timing when expression by the 8-bit fixedpoint can be sufficiently made, it is not necessary for an operator todesignate a timing of the arithmetic data type by trial and error, andit is possible to easily improve the learning efficiency of deeplearning and machine learning. Furthermore, since the arithmetic datatype is switched based on the expressible element number, stagnation inlearning due to insufficient arithmetic operation accuracy caused byinsufficient previous learning can be reduced.

Moreover, since the arithmetic data type is automatically changed duringthe learning arithmetic operation, for example, in a case whereadditional learning or transfer learning is performed by using a modelof deep learning constructed by other systems, it is not necessary forthe operator to designate the arithmetic data type for each arithmeticoperation defined by the model. For example, operability can be improvedeven in such a case.

Furthermore, in the present embodiment, the arithmetic data type isautomatically switched from the 32-bit floating point to the 8-bit fixedpoint. However, in the fields of machine learning and deep learning, itis considered that there are a certain number of operators whoemphasizes the recognition accuracy after learning than arithmeticoperation performance. Therefore, it is also important to consider theoperator who emphasizes the recognition accuracy after learning.

Therefore, the information processing apparatus according to the presentembodiment may be configured to be able to select automatic switching tothe 8-bit fixed point or execution of all the arithmetic operations withthe 32-bit floating point. In a case where the automatic switching tothe 8-bit fixed point is selected, the information processing apparatusexecutes processing similar to the above processing. On the other hand,in a case where the execution of all the arithmetic operations with the32-bit floating point is selected, the information processing apparatusperforms all the arithmetic operations with the 32-bit floating pointwithout switching the arithmetic data type to the 8-bit fixed pointuntil deep learning is completed.

Modification

In the first embodiment, a case where the single information processingapparatus 1 performs learning has been described as an example. However,a similar function can be applied to a case where a plurality ofinformation processing apparatuses is used for learning, and a similareffect can be obtained.

For example, FIG. 9 is a diagram illustrating learning by using twoinformation processing apparatuses. Here, learning data stored in alearning data storage 81 is used by both of information processingapparatuses 1A and 1B.

The information processing apparatus 1A acquires the learning datastored in the learning data storage 81 and proceeds learning. In thiscase, a database 156A corresponds to the arithmetic data type database106 and the expressible ratio database 107 in FIG. 3. The informationprocessing apparatus 1A calculates an expressible ratio for eachiteration from a tensor element number of an arithmetic operation resultand stores the expressible ratio in the database 156A. Then, theinformation processing apparatus 1A determines an arithmetic data typefrom the expressible ratio stored in the database 156A and automaticallyswitches the arithmetic data type used in the arithmetic operations #1to #n to the 8-bit fixed point.

Similarly, the information processing apparatus 1B acquires the learningdata from the learning data storage 81 and proceeds learning. In thiscase, a database 156B corresponds to the arithmetic data type database106 and the expressible ratio database 107 in FIG. 3. The informationprocessing apparatus 1B calculates an expressible ratio for eachiteration from a tensor element number of an arithmetic operation resultand stores the expressible ratio in the database 156B. Then, theinformation processing apparatus 1B determines an arithmetic data typefrom the expressible ratio stored in the database 156B and automaticallyswitches the arithmetic data type used in the arithmetic operations #1to #n to the 8-bit fixed point.

Thereafter, learning results of the information processing apparatuses1A and 1B are collected, and learning is completed. In this way, even ina case where the plurality of information processing apparatuses is usedfor learning, each information processing apparatus can easily improve alearning efficiency of machine learning.

Second Embodiment

Next, a second embodiment will be described. An information processingapparatus 1 according to the present embodiment is different from thefirst embodiment in that a part of arithmetic operations that isdifficult to be expressed by the 8-bit fixed point and can be expressedby a 16-bit fixed point is performed by using the 16-bit fixed point. Ablock diagram of the information processing apparatus 1 according to thepresent embodiment is illustrated in FIG. 3. In the followingdescription, arithmetic data type determination processing will bemainly described. Description of a function of each unit similar to thatin the first embodiment will be omitted.

An expressible ratio database 107 according to the present embodimenthas a format illustrated in FIG. 10. FIG. 10 is a diagram of an exampleof registration information in an expressible ratio database accordingto the second embodiment. As illustrated in FIG. 10, in the expressibleratio database 107 according to the present embodiment, an expressibleratio by an 8-bit fixed point and an expressible ratio by a 16-bit fixedpoint of a tensor element number included in an arithmetic operationresult are registered for each arithmetic operation of each iteration.

Furthermore, an arithmetic data type database 106 according to thepresent embodiment has a format illustrated in FIG. 11. FIG. 11 is adiagram of an example of registration information in an arithmetic datatype database according to the second embodiment. As illustrated in FIG.11, in the arithmetic data type database 106 according to the presentembodiment, either one of a 32-bit floating point, a 16-bit fixed point,or an 8-bit fixed point is registered as an arithmetic data type used ineach arithmetic operation in association with each arithmetic ID.

A database update unit 142 receives an input of the arithmetic operationresult of an arithmetic operation performed in the latest iteration fromthe database update instruction unit 123. Next, the database update unit142 acquires a tensor element number from the arithmetic operationresult. Next, the database update unit 142 determines an appropriatedecimal point position Q₈ in an arithmetic operation in a case where thearithmetic operation result is expressed by the 8-bit fixed point byusing the acquired tensor element number and the formula (1). Then, anexpressible ratio P₈ of the tensor element number by the 8-bit fixedpoint in a case of the decimal point position Q₈ is calculated by usingthe formula (2). Then, the database update unit 142 registers theexpressible ratio by the 8-bit fixed point in each arithmetic operationin the latest iteration to the expressible ratio database 107.

Next, the database update unit 142 determines an appropriate decimalpoint position Q₁₆ in an arithmetic operation in a case where thearithmetic operation result is expressed by the 16-bit fixed point byusing the acquired tensor element number and the next formula (6).

[Mathematical Formula 6]

Q ₁₆=16−ceil(log₂ max(|x min|, x max))−1  (6)

Next, the database update unit 142 calculates an expressible ratio P₁₆of the tensor element number by the 16-bit fixed point in a case of thedecimal point position Q₁₆ by using the next formula (7). Then, thedatabase update unit 142 registers the expressible ratio by the 16-bitfixed point in each arithmetic operation in the latest iteration to theexpressible ratio database 107.

$\begin{matrix}\left\lbrack {{Mathematical}\mspace{14mu} {Formula}\mspace{14mu} 7} \right\rbrack & \; \\{P_{16} = \frac{\begin{matrix}{{The}\mspace{14mu} {number}\mspace{14mu} {of}\mspace{14mu} {tensor}\mspace{14mu} {elements}\mspace{14mu} {of}} \\{{which}\mspace{14mu} {value}\mspace{14mu} {is}\mspace{14mu} {within}\mspace{14mu} {range}\mspace{14mu} R_{16}}\end{matrix}}{N}} & (7)\end{matrix}$

As a result, the database update unit 142 registers the data illustratedin FIG. 10 to the expressible ratio database 107. For example, in theexpressible ratio database 107, the expressible ratio in a case wherethe 8-bit floating point is used and the expressible ratio in a casewhere the 16-bit floating point is used are registered.

Here, the 8-bit fixed point corresponds to an example of a “firstpredetermined-bit fixed point”, and the 16-bit fixed point correspondsto an example of a “second predetermined-bit fixed point”. In thefollowing description, the expressible ratio in a case where the 8-bitfloating point is used is referred to as an “8-bit expressible ratio”,and the expressible ratio in a case where the 16-bit floating point isused is referred to as a “16-bit expressible ratio”.

An arithmetic data type decision unit 141 receives an input of a requestfor acquiring an arithmetic data type used in each arithmetic operationfrom an arithmetic data type request unit 122. Next, the arithmetic datatype decision unit 141 confirms the arithmetic data type database 106and acquires a current arithmetic data type of each arithmeticoperation. Then, the arithmetic data type decision unit 141 specifies anarithmetic operation in which the 8-bit fixed point has been already setas the arithmetic data type. The arithmetic data type decision unit 141notifies an 8-bit fixed point of the specified arithmetic operation, inwhich the 8-bit fixed point has been already set as the arithmetic datatype, of the arithmetic data type request unit 122 as the arithmeticdata type.

On the other hand, regarding the arithmetic operation in whicharithmetic data types other than the 8-bit fixed point are set as thearithmetic data type, the arithmetic data type decision unit 141acquires an 8-bit expressible ratio in an iteration within adetermination range from the latest iteration from the expressible ratiodatabase 107.

For example, with reference to FIG. 12, a case will be described wherethe 1504 times of iterations have been terminated at that time. FIG. 12is a diagram for explaining arithmetic data type determinationprocessing according to the second embodiment. A table 171 in FIG. 12 isa table in which the expressible ratio database 107 is rearranged foreasy understanding.

For example, in a case where the determination range is four times ofiterations, the arithmetic data type decision unit 141 acquires 8-bitexpressible ratios in use ranges 711, 713, and 715 in FIG. 12 for eacharithmetic operation. Here, the arithmetic data type at the time of thearithmetic operations #1 to #3 is a 32-bit floating point. Next, thearithmetic data type decision unit 141 determines whether or not the8-bit expressible ratio in the latest iteration for each arithmeticoperation exceeds a ratio threshold. For example, in a case where theratio threshold is set to Tf1, the arithmetic data type decision unit141 determines whether or not the formula (3) is satisfied.

Regarding the arithmetic operation of which the expressible ratioexceeds the threshold, the arithmetic data type decision unit 141determines whether or not a change in the 8-bit expressible ratio withinthe determination range is small. For example, the arithmetic data typedecision unit 141 calculates a fluctuation Δf between the iterations foran arithmetic operation f by using the formula (4).

Next, the arithmetic data type decision unit 141 determines whether ornot the calculated fluctuation in the 8-bit expressible ratio is lessthan a fluctuation threshold. For example, in a case where thefluctuation threshold is set to Tf2, the arithmetic data type decisionunit 141 determines whether or not the formula (5) is satisfied.

For the arithmetic operation of which the fluctuation in the 8-bitexpressible ratio is less than the fluctuation threshold, an arithmeticdata type of the arithmetic operation is determined as the 8-bit fixedpoint, and the arithmetic data type is notified to the arithmetic datatype request unit 122.

Regarding the arithmetic operation of which the 8-bit expressible ratiois equal to or less than the ratio threshold and the fluctuation in the8-bit expressible ratio is equal to or more than a predeterminedfluctuation threshold, the arithmetic data type decision unit 141specifies an arithmetic operation of which the arithmetic data type hasbeen already set as the 16-bit fixed point. The arithmetic data typedecision unit 141 notifies a 16-bit fixed point of the specifiedarithmetic operation, in which the 16-bit fixed point has been alreadyset as the arithmetic data type, of the arithmetic data type requestunit 122 as the arithmetic data type.

On the other hand, regarding the arithmetic operation in whicharithmetic data types other than the 16-bit fixed point are set as thearithmetic data type, the arithmetic data type decision unit 141acquires a 16-bit expressible ratio of an iteration within adetermination range from the latest iteration from the expressible ratiodatabase 107. In this case, the arithmetic operation using thearithmetic data types other than the 16-bit fixed point as thearithmetic data type is an arithmetic operation using the 32-bitfloating point as the arithmetic data type.

For example, the arithmetic data type decision unit 141 acquires 16-bitexpressible ratios in use ranges 712, 714, and 716 in FIG. 12 for eacharithmetic operation. Next, the arithmetic data type decision unit 141determines whether or not the 16-bit expressible ratio in the latestiteration for each arithmetic operation exceeds a ratio threshold. Forexample, in a case where the ratio threshold is set to Tf1, thearithmetic data type decision unit 141 determines whether or not theformula (3) is satisfied.

Regarding the arithmetic operation of which the expressible ratioexceeds a threshold, the arithmetic data type decision unit 141determines whether or not a change in the 16-bit expressible ratiowithin the determination range is small. For example, the arithmeticdata type decision unit 141 calculates a fluctuation Δf between theiterations for an arithmetic operation f by using the formula (4).

Next, the arithmetic data type decision unit 141 determines whether ornot the calculated fluctuation in the 16-bit expressible ratio is lessthan a fluctuation threshold. For example, in a case where thefluctuation threshold is set to Tf2, the arithmetic data type decisionunit 141 determines whether or not the formula (5) is satisfied. For thearithmetic operation of which the fluctuation in the 16-bit expressibleratio is less than the fluctuation threshold, an arithmetic data type ofthe arithmetic operation is determined as the 16-bit fixed point, andthe arithmetic data type is notified to the arithmetic data type requestunit 122.

On the other hand, regarding the arithmetic operation of which the16-bit expressible ratio is equal to or less than the ratio thresholdand the arithmetic operation of which the fluctuation in the 16-bitexpressible ratio is equal to or more than the predetermined fluctuationthreshold, the arithmetic data type decision unit 141 determines thearithmetic data type of the arithmetic operation as the 32-bit floatingpoint. Then, the arithmetic data type decision unit 141 notifies, of thearithmetic data type request unit 122, that the 32-bit floating point isused as the arithmetic data type of the arithmetic operation.

Here, in the present embodiment, the arithmetic data type decision unit141 confirms the changes in the 8-bit expressible ratio and the 16-bitexpressible ratio regarding the arithmetic operations in which the 8-bitfixed point and the 16-bit fixed point are set as the arithmetic datatype. This processing is possible for the following reason. At the timeof arithmetic operation, even in a case where the arithmetic operationis performed by using the 8-bit fixed point and the 16-bit fixed point,the arithmetic operation unit 103 performs the arithmetic operation byusing intermediate data having larger arithmetic operation accuracy inthe arithmetic operation and makes an output with accuracy of 8-bitfixed point or the 16-bit fixed point. Then, the database update unit142 calculates the 8-bit expressible ratio and the 16-bit expressibleratio by using the intermediate data that is the arithmetic operationresult before the accuracy is changed to the accuracy of the 8-bit fixedpoint and the 16-bit fixed point. Therefore, the arithmetic data typedecision unit 141 can determine the changes in the 8-bit expressibleratio and the 16-bit expressible ratio regarding the arithmeticoperation results of the arithmetic operations using the 8-bit fixedpoint and the 16-bit fixed point.

For example, arithmetic data type determination processing by thearithmetic data type decision unit 141 in a case where the ratiothreshold is set to 80% and the fluctuation threshold is set to 10% inFIG. 12 will be described. The arithmetic data type decision unit 141determines that an 8-bit expressible ratio of an arithmetic operation #1in an iteration having an iteration ID of it1504 is 46.5% and is equalto or less than the ratio threshold and a 16-bit expressible ratio is99.2% and is larger than the ratio threshold. Therefore, the arithmeticdata type decision unit 141 determines not to use the 8-bit fixed pointas the arithmetic data type of the arithmetic operation #1. Moreover,the arithmetic data type decision unit 141 obtains a fluctuation in the16-bit expressible ratio in the use range 712 and determines that theobtained value is less than the fluctuation threshold. Therefore, thearithmetic data type decision unit 141 determines the arithmetic datatype of the arithmetic operation #1 as the 16-bit fixed point.

Furthermore, the arithmetic data type decision unit 141 determines thatthe 8-bit expressible ratio of the arithmetic operation #2 in theiteration having the iteration ID of it1504 is 97.2% and is larger thanthe ratio threshold. Next, the arithmetic data type decision unit 141obtains a fluctuation in the 8-bit expressible ratio in the use range713 and determines that the obtained value is less than the fluctuationthreshold. With this determination, the arithmetic data type decisionunit 141 determines the arithmetic data type of the arithmetic operation#2 as the 8-bit fixed point.

Furthermore, the arithmetic data type decision unit 141 determines thatan 8-bit expressible ratio of an arithmetic operation #3 in theiteration having the iteration ID of it1504 is 96.9% and is larger thanthe ratio threshold and a 16-bit expressible ratio is 99.2% and islarger than the ratio threshold. Therefore, the arithmetic data typedecision unit 141 obtains the fluctuation of the 8-bit expressible ratioof the use range 715 and determines that the obtained value is equal toor more than the fluctuation threshold. Next, the arithmetic data typedecision unit 141 obtains a fluctuation in the 16-bit expressible ratioin the use range 716 and determines that the fluctuation is equal to ormore than the fluctuation threshold. In this case, the arithmetic datatype decision unit 141 determines not to use the 8-bit fixed point andthe 16-bit fixed point as the arithmetic data type of the arithmeticoperation #3. Therefore, the arithmetic data type decision unit 141determines the arithmetic data type of the arithmetic operation #3 asthe 32-bit floating point.

Next, a detailed flow of the arithmetic data type determinationprocessing according to the second embodiment will be described withreference to FIGS. 13A and 13B. FIGS. 13A and 13B are a flowchart of thearithmetic data type determination processing according to the secondembodiment.

An arithmetic data type determination unit 104 initializes thearithmetic data type database 106 and the expressible ratio database 107(step S301).

The data reading control unit 124 receives a notification indicating theinitialization completion of the database from the database updateinstruction unit 123. Furthermore, the data reading control unit 124receives a request for acquiring the learning data from the arithmeticoperation instruction unit 121. Then, the data reading control unit 124outputs a request for reading the learning data to the learning datareading unit 105. In response to the request for reading the learningdata, a learning data reading unit 105 reads designated learning datafrom a learning data storage unit 200 (step S302). Thereafter, thelearning data reading unit 105 outputs the read learning data to thedata reading control unit 124. The data reading control unit 124 outputsthe acquired learning data to the arithmetic operation instruction unit121.

An arithmetic operation instruction unit 121 selects a next arithmeticoperation in an iteration from the instruction to perform deep learninginput from a user application 101 (step S303).

Then, the arithmetic operation instruction unit 121 outputs a requestfor acquiring an arithmetic data type used in the selected arithmeticoperation to the arithmetic data type decision unit 141. Upon receivingthe acquisition request, the arithmetic data type decision unit 141acquires an 8-bit expressible ratio and a 16-bit expressible ratio in aniteration within a use range of the selected arithmetic operation fromthe expressible ratio database 107 (step S304). However, in a case wherethe iteration is not proceeded and iterations within the use range arenot obtained, the arithmetic data type decision unit 141 determines thatan error occurs in the acquisition of the expressible ratio.

Next, the arithmetic data type decision unit 141 calculates fluctuationsin the 8-bit expressible ratio and the 16-bit expressible ratio by usingthe acquired 8-bit expressible ratio and 16-bit expressible ratio in theformula (4) (step S305). However, in a case where an error occurs in theacquisition of the expressible ratio, the arithmetic data type decisionunit 141 does not calculate the fluctuation in the expressible ratio andremains the fluctuation to be uncalculated.

Next, the arithmetic data type decision unit 141 determines whether ornot the selected arithmetic operation has been already performed usingthe 8-bit fixed point (step S306). In a case where the arithmeticoperation has been already performed using the 8-bit fixed point (stepS306: yes), the arithmetic data type decision unit 141 maintains thearithmetic data type used in the selected arithmetic operation as the8-bit fixed point, and the procedure proceeds to step S310.

On the other hand, in a case where the arithmetic operation has not beenperformed yet by using the 8-bit fixed point (step S306: no), thearithmetic data type decision unit 141 determines whether or not thefluctuation in the 8-bit expressible ratio is less than the fluctuationthreshold (step S307).

In a case where the fluctuation in the 8-bit expressible ratio is lessthan the fluctuation threshold (step S307: yes), the arithmetic datatype decision unit 141 determines whether or not the latest 8-bitexpressible ratio is larger than the ratio threshold (step S308).

In a case where the latest 8-bit expressible ratio is larger than theratio threshold (step S308: yes), the arithmetic data type decision unit141 determines the arithmetic data type as the 8-bit fixed point.Thereafter, the arithmetic data type decision unit 141 notifies of thearithmetic operation instruction unit 121 that the 8-bit fixed point isused as the arithmetic data type of the selected arithmetic operationand changes the arithmetic data type to the 8-bit fixed point. (stepS309).

The arithmetic operation instruction unit 121 makes the arithmeticoperation unit 103 perform the selected arithmetic operation by usingthe 8-bit fixed point (step S310).

On the other hand, in a case where the fluctuation in the 8-bitexpressible ratio is not less than the fluctuation threshold (step S307:no) or in a case where the latest 8-bit expressible ratio is equal to orless than the ratio threshold (step S308: no), the arithmetic data typedecision unit 141 executes the following processing. Here, in a casewhere the fluctuation in the 8-bit expressible ratio is not calculated,the arithmetic data type decision unit 141 determines that thefluctuation is not less than the fluctuation threshold. The arithmeticdata type decision unit 141 determines whether or not the selectedarithmetic operation has been already performed using the 16-bit fixedpoint (step S311). In a case where the arithmetic operation has beenalready performed using the 16-bit fixed point (step S311: yes), thearithmetic data type decision unit 141 maintains the arithmetic datatype used in the selected arithmetic operation as the 16-bit fixedpoint, and the procedure proceeds to step S315.

On the other hand, in a case where the arithmetic operation has not beenperformed yet by using the 16-bit fixed point (step S311: no), thearithmetic data type decision unit 141 determines whether or not thefluctuation in the 16-bit expressible ratio is less than the fluctuationthreshold (step S312).

In a case where the fluctuation in the 16-bit expressible ratio is lessthan the fluctuation threshold (step S312: yes), the arithmetic datatype decision unit 141 determines whether or not the latest 16-bitexpressible ratio is larger than the ratio threshold (step S313).

In a case where the latest 16-bit expressible ratio is larger than theratio threshold (step S313: yes), the arithmetic data type decision unit141 determines the arithmetic data type as the 16-bit fixed point.Thereafter, the arithmetic data type decision unit 141 notifies of thearithmetic operation instruction unit 121 that the 16-bit fixed point isused as the arithmetic data type of the selected arithmetic operationand changes the arithmetic data type to the 16-bit fixed point (stepS314).

The arithmetic operation instruction unit 121 makes the arithmeticoperation unit 103 perform the selected arithmetic operation by usingthe 16-bit fixed point (step S315).

On the other hand, in a case where the fluctuation in the 16-bitexpressible ratio is not less than the fluctuation threshold (step S312:no) or in a case where the latest 16-bit expressible ratio is equal toor less than the ratio threshold (step S313: no), the arithmetic datatype decision unit 141 executes the following processing. Here, in acase where the fluctuation in the 16-bit expressible ratio is notcalculated, the arithmetic data type decision unit 141 determines thatthe fluctuation is not less than the fluctuation threshold. Thearithmetic data type decision unit 141 determines to maintain thearithmetic data type of the selected arithmetic operation as the 32-bitfloating point. In this case, in the present embodiment, the arithmeticdata type decision unit 141 does not notify the instruction to changethe arithmetic data type of the arithmetic operation instruction unit121. However, the arithmetic data type decision unit 141 may notify ofthe arithmetic operation instruction unit 121 that the 32-bit floatingpoint is used as the arithmetic data type of the selected arithmeticoperation. The arithmetic operation instruction unit 121 makes thearithmetic operation unit 103 perform the selected arithmetic operationby using the 32-bit floating point (step S316).

Thereafter, the arithmetic data type request unit 122 acquires thearithmetic operation result of the selected arithmetic operation fromthe arithmetic operation unit 103. Then, the arithmetic data typerequest unit 122 outputs the acquired arithmetic operation result to thedatabase update unit 142 and instructs to update the expressible ratiodatabase 107. The database update unit 142 calculates the 8-bitexpressible ratio and the 16-bit expressible ratio by using the tensorelement number included in the input arithmetic operation result (stepS317).

Next, the database update unit 142 stores the calculated 8-bitexpressible ratio and 16-bit expressible ratio in the expressible ratiodatabase 107 (step S318).

The arithmetic operation instruction unit 121 determines whether or notall the arithmetic operation processing in one iteration is completedaccording to whether or not the iteration completion notification isacquired from the arithmetic operation unit 103 (step S319). In a casewhere there is arithmetic operation processing that is not executed(step S319: no), the arithmetic operation instruction unit 121 returnsto step S303.

On the other hand, in a case where all the arithmetic operationprocessing in one iteration has been completed (step S319: yes), thearithmetic operation instruction unit 121 determines whether or not deeplearning is completed (step S320). In a case where deep learning is notcompleted (step S320: no), the arithmetic operation instruction unit 121returns to step S302.

On the other hand, in a case where deep learning is completed (stepS320: yes), the arithmetic operation instruction unit 121 notifies thecompletion of deep learning of the user application 101. Then, thearithmetic operation instruction unit 121 terminates deep learningincluding switching of the arithmetic data types.

As described above, the information processing apparatus according tothe present embodiment obtains the expressible ratios with the 8-bitexpressible ratio and the 16-bit expressible ratio of the element numberincluded in the arithmetic operation result and switches the arithmeticdata type according to the obtained 8-bit expressible ratio and 16-bitexpressible ratio. In this way, since the arithmetic data type isautomatically switched at the timing when expression by the 8-bit fixedpoint or the 16-bit fixed point can be sufficiently made, it is notnecessary for an operator to designate a timing of the arithmetic datatype by trial and error. Therefore, the information processing apparatusaccording to the present embodiment can easily improve a learningefficiency of deep learning and machine learning. Furthermore, since thearithmetic data type is switched based on the expressible elementnumber, stagnation in learning due to insufficient arithmetic operationaccuracy caused by insufficient previous learning can be reduced.

Note that the information processing apparatus according to the presentembodiment may be configured to be able to select automatic switching tothe 8-bit fixed point and the 16-bit fixed point or execution of all thearithmetic operations with the 32-bit floating point. In a case wherethe automatic switching to the 8-bit fixed point and the 16-bit fixedpoint is selected, the information processing apparatus executesprocessing similar to the above processing. On the other hand, in a casewhere the execution of all the arithmetic operations with the 32-bitfloating point is selected, the information processing apparatusperforms all the arithmetic operations with the 32-bit floating pointwithout switching the arithmetic data type to the 8-bit fixed pointuntil deep learning is completed.

Third Embodiment

FIG. 14 is a block diagram of an information processing apparatusaccording to a third embodiment. An information processing apparatus 1according to the present embodiment is different from that in the firstand second embodiments in that the information processing apparatus 1does not include an arithmetic data type database 106.

The information processing apparatus 1 according to the presentembodiment is different from those in the first and second embodimentsin that an arithmetic data type is determined for each iteration withoutreferring to a previous arithmetic data type. For example, with theinformation processing apparatus 1 according to the present embodiment,there is a case where an arithmetic operation using the 8-bit fixedpoint as the arithmetic data type is returned to a state where the16-bit fixed point and the 32-bit floating point are used as thearithmetic data types. Furthermore, there is a case where an arithmeticoperation using the 16-bit fixed point as the arithmetic data type isreturned to a state where the 32-bit floating point is used as thearithmetic data type.

In the following description, an example will be described in which the8-bit fixed point and the 16-bit fixed point are used as in the secondembodiment. However, the information processing apparatus 1 according tothe third embodiment can operate in a case where the 8-bit fixed pointsimilar to that in the first embodiment is used as a fixed point. In thefollowing description, arithmetic data type determination processingwill be mainly described. Description of a function of each unit similarto that in the second embodiment will be omitted.

An expressible ratio database 107 according to the present embodimenthas a format similar to the format illustrated in FIG. 10. For example,in the expressible ratio database 107 according to the presentembodiment, an expressible ratio by an 8-bit fixed point and anexpressible ratio by a 16-bit fixed point of a tensor element numberincluded in an arithmetic operation result are registered for eacharithmetic operation of each iteration.

When receiving an instruction to perform deep learning from a userapplication 101, an execution control unit 102 instructs an arithmeticdata type determination unit 104 to initialize the expressible ratiodatabase 107. In this case, since the arithmetic data type database 106does not exist, the arithmetic data type database 106 is notinitialized.

In response to the instruction to initialize the expressible ratiodatabase 107, the arithmetic data type determination unit 104 deletesdata registered to the expressible ratio database 107 and initializesthe expressible ratio database 107.

An arithmetic data type decision unit 141 receives an input of a requestfor acquiring an arithmetic data type used in each arithmetic operationfrom an arithmetic data type request unit 122. Next, the arithmetic datatype decision unit 141 confirms the arithmetic data type database 106and acquires a current arithmetic data type of each arithmeticoperation. Then, the arithmetic data type decision unit 141 acquires an8-bit expressible ratio in an iteration within a determination rangefrom the expressible ratio database 107.

Next, the arithmetic data type decision unit 141 determines whether ornot the 8-bit expressible ratio in the latest iteration for eacharithmetic operation exceeds a ratio threshold. For example, in a casewhere the ratio threshold is set to Tf1, the arithmetic data typedecision unit 141 determines whether or not the formula (3) issatisfied.

Regarding the arithmetic operation of which the expressible ratioexceeds the threshold, the arithmetic data type decision unit 141determines whether or not a change in the 8-bit expressible ratio withinthe determination range is small. For example, the arithmetic data typedecision unit 141 calculates a fluctuation Δf between the iterations foran arithmetic operation f by using the formula (4).

Next, the arithmetic data type decision unit 141 determines whether ornot the calculated fluctuation in the 8-bit expressible ratio is lessthan a fluctuation threshold. For example, in a case where thefluctuation threshold is set to Tf2, the arithmetic data type decisionunit 141 determines whether or not the formula (5) is satisfied.

For the arithmetic operation of which the fluctuation in the 8-bitexpressible ratio is less than the fluctuation threshold, the arithmeticdata type decision unit 141 determines the arithmetic data type of thearithmetic operation as the 8-bit fixed point and notifies thedetermined arithmetic data type of the arithmetic data type request unit122.

On the other hand, regarding the arithmetic operation of which the 8-bitexpressible ratio is equal to or less than the ratio threshold and thearithmetic operation of which the fluctuation in the 8-bit expressibleratio is equal to or more than the predetermined fluctuation threshold,the arithmetic data type decision unit 141 acquires a 16-bit expressibleratio in the iteration within the determination range.

Next, the arithmetic data type decision unit 141 determines whether ornot the 16-bit expressible ratio in the latest iteration for eacharithmetic operation exceeds a ratio threshold. For example, in a casewhere the ratio threshold is set to Tf1, the arithmetic data typedecision unit 141 determines whether or not the formula (3) issatisfied.

Regarding the arithmetic operation of which the expressible ratioexceeds the threshold, the arithmetic data type decision unit 141determines whether or not a change in the 16-bit expressible ratiowithin the determination range is small. For example, the arithmeticdata type decision unit 141 calculates a fluctuation Δf between theiterations for an arithmetic operation f by using the formula (4).

Next, the arithmetic data type decision unit 141 determines whether ornot the calculated fluctuation in the 16-bit expressible ratio is lessthan a fluctuation threshold. For example, in a case where thefluctuation threshold is set to Tf2, the arithmetic data type decisionunit 141 determines whether or not the formula (5) is satisfied. For thearithmetic operation of which the fluctuation in the 16-bit expressibleratio is less than the fluctuation threshold, the arithmetic data typedecision unit 141 determines the arithmetic data type of the arithmeticoperation as the 16-bit fixed point and notifies the determinedarithmetic data type of the arithmetic data type request unit 122.

On the other hand, regarding the arithmetic operation of which the16-bit expressible ratio is equal to or less than the ratio thresholdand the arithmetic operation of which the fluctuation in the 16-bitexpressible ratio is equal to or more than the predetermined fluctuationthreshold, the arithmetic data type decision unit 141 determines thearithmetic data type of the arithmetic operation as the 32-bit floatingpoint. Then, the arithmetic data type decision unit 141 notifies, of thearithmetic data type request unit 122, that the 32-bit floating point isused as the arithmetic data type of the arithmetic operation.

Here, arithmetic data type transition according to the presentembodiment will be described with reference to FIG. 15. FIG. 15 is adiagram for explaining the arithmetic data type transition. A table 172in FIG. 15 is a table in which the expressible ratio database 107 isrearranged for easy understanding. Here, arithmetic data typedetermination processing by the arithmetic data type decision unit 141in a case where the ratio threshold is set to 80% and the fluctuationthreshold is set to 10% will be described.

First, arithmetic data type transition in the arithmetic operation #1will be described. Since the 8-bit expressible ratio of the arithmeticoperation #1 is equal to or less than the ratio threshold at the time ofan iteration having the iteration ID of it1505, the arithmetic data typedecision unit 141 does not use the 8-bit fixed point as an arithmeticdata type of the arithmetic operation #1. On the other hand, the 16-bitexpressible ratio in the iteration having the iteration ID of it1505 inthe use range 721 exceeds the ratio threshold, and the fluctuation inthe 16-bit expressible ratio is less than the fluctuation threshold.Therefore, the arithmetic data type decision unit 141 sets the 16-bitfixed point as the arithmetic data type of the arithmetic operation #1.Therefore, the 16-bit fixed point is used as the arithmetic data type ofthe arithmetic operation #1 in an iteration having the iteration ID ofit1506, and a ratio 722 is calculated by using the 16-bit fixed point.

Thereafter, both of the 8-bit expressible ratio and the 16-bitexpressible ratio are equal to or less than the ratio threshold at thetime of an iteration having the iteration ID of it1507. Furthermore, afluctuation in the 16-bit expressible ratio in the use range 723 isequal to or more than the fluctuation threshold. Therefore, thearithmetic data type decision unit 141 sets the 32-bit floating point asthe arithmetic data type of the arithmetic operation #1. With thisoperation, after an iteration having the iteration ID of it1508, the32-bit floating point is used as the arithmetic data type of thearithmetic operation #1 if the arithmetic data type is not changed.

Next, arithmetic data type transition in the arithmetic operation #2will be described. Both of the 8-bit expressible ratio and the 16-bitexpressible ratio exceed the ratio threshold as in the use range 724 atthe time of the iteration having the iteration ID of it1504, and eachfluctuation is less than the fluctuation threshold. Therefore, thearithmetic data type decision unit 141 sets the 8-bit fixed point as thearithmetic data type of the arithmetic operation #2. With thisoperation, in an iteration in a range 725 after the iteration having theiteration ID of it1505, the 8-bit fixed point is used as the arithmeticdata type of the arithmetic operation #2 if the arithmetic data type isnot changed.

Next, arithmetic data type transition in the arithmetic operation #3will be described. Both of the 8-bit expressible ratio and the 16-bitexpressible ratio exceed the ratio threshold as in a use range 726 atthe time of the iteration having the iteration ID of it1504, and eachfluctuation is less than the fluctuation threshold. Therefore, thearithmetic data type decision unit 141 sets the 8-bit fixed point as thearithmetic data type of the arithmetic operation #2. As a result, aratio 727 of the iteration having the iteration ID of it1505 iscalculated by using the 8-bit fixed point.

However, at the time of the iteration having the iteration ID of it1506,in a use range 728, the 8-bit available ratio of the iteration havingthe iteration ID of it1506 is equal to or less than the ratio threshold,and a fluctuation in the 8-bit available ratio is equal to or less thanthe fluctuation threshold. Therefore, the arithmetic data type decisionunit 141 does not use the 8-bit fixed point as the arithmetic data typeof the arithmetic operation #3. On the other hand, in a use range 729,the 16-bit expressible ratio in the iteration having the iteration ID ofit1506 is larger than the ratio threshold, and the fluctuation in the16-bit expressible ratio is less than the fluctuation threshold.Therefore, the arithmetic data type decision unit 141 sets the 16-bitfixed point as the arithmetic data type of the arithmetic operation #3.With this operation, in an iteration in a range 730 after the iterationhaving the iteration ID of it1507, the 16-bit fixed point is used as thearithmetic data type of the arithmetic operation #3 if the arithmeticdata type is not changed.

Next, an outline of an entire flow of arithmetic data type determinationprocessing by the information processing apparatus 1 according to thethird embodiment will be described with reference to FIG. 16. FIG. 16 isa sequence diagram of the arithmetic data type determination processingby the information processing apparatus according to the thirdembodiment.

The user application 101 outputs an instruction to perform deep learningto the execution control unit 102 (step S401).

When receiving the instruction to perform deep learning from the userapplication 101, the execution control unit 102 instructs the arithmeticdata type determination unit 104 to initialize the expressible ratiodatabase 107 (step S402).

In response to the instruction to initialize the expressible ratiodatabase 107, the arithmetic data type determination unit 104 deletesdata registered to the expressible ratio database 107 and initializesthe expressible ratio database 107 (step S403).

Thereafter, the arithmetic data type determination unit 104 notifies thecompletion of the initialization of the expressible ratio database 107of the execution control unit 102 (step S404).

When receiving the response indicating the completion of theinitialization of the expressible ratio database 107, the executioncontrol unit 102 instructs a learning data reading unit 105 to read thelearning data used for learning (step S405).

In response to the instruction to read the learning data, the learningdata reading unit 105 reads designated learning data from a learningdata storage unit 200 (step S406).

Thereafter, the learning data reading unit 105 transmits the readlearning data to the execution control unit 102 (step S407).

The execution control unit 102 acquires the learning data from thelearning data reading unit 105. Next, the execution control unit 102outputs a request for acquiring the arithmetic data type used in eacharithmetic operation in the next iteration to the arithmetic data typedetermination unit 104 (step S408).

When receiving the request to acquire the arithmetic data type, thearithmetic data type determination unit 104 determines the arithmeticdata type used in each arithmetic operation by using the expressibleratio database 107 (step S409).

Then, the arithmetic data type determination unit 104 outputs anotification indicating the determined arithmetic data type used in eacharithmetic operation to the execution control unit 102 (step S410).

The execution control unit 102 acquires the arithmetic data type to beused in each arithmetic operation. Then, the execution control unit 102outputs the acquired learning data to the arithmetic operation unit 103and further notifies the arithmetic data type used in each arithmeticoperation of the arithmetic operation unit 103 and makes the arithmeticoperation unit 103 perform the arithmetic operation (step S411).

Thereafter, the execution control unit 102 receives an input of thearithmetic operation result from the arithmetic operation unit 103 (stepS412).

Next, the execution control unit 102 outputs the acquired arithmeticoperation result to the arithmetic data type determination unit 104 andinstructs to update the expressible ratio database 107 (step S413).

The arithmetic data type determination unit 104 calculates anexpressible ratio by using the tensor element number included in thearithmetic operation result, registers the calculated expressible ratio,and updates the expressible ratio database 107 (step S414).

Thereafter, the arithmetic data type determination unit 104 outputs anotification indicating the update completion of the expressible ratiodatabase 107 to the execution control unit 102 (step S415).

The execution control unit 102 receives the input of the notificationindicating the update completion of the arithmetic data type database106 from the execution control unit 102. The execution control unit 102,the arithmetic operation unit 103, the arithmetic data typedetermination unit 104, and the learning data reading unit 105 repeatsteps S111 to S121 until all the arithmetic operations included in oneiteration are completed. Moreover, the execution control unit 102, thearithmetic operation unit 103, the arithmetic data type determinationunit 104, and the learning data reading unit 105 repeat steps S108 toS121 until deep learning is completed. Thereafter, the execution controlunit 102 notifies the completion of deep learning of the userapplication 101 (step S416).

Next, a detailed flow of the arithmetic data type determinationprocessing according to the third embodiment will be described withreference to FIGS. 17A and 17B. FIGS. 17A and 17B are a flowchart of thearithmetic data type determination processing according to the thirdembodiment.

The arithmetic data type determination unit 104 initializes theexpressible ratio database 107 (step S501).

The data reading control unit 124 receives a notification indicating theinitialization completion of the database from the database updateinstruction unit 123. Furthermore, the data reading control unit 124receives a request for acquiring the learning data from the arithmeticoperation instruction unit 121. Then, the data reading control unit 124outputs a request for reading the learning data to the learning datareading unit 105. In response to the request for reading the learningdata, a learning data reading unit 105 reads designated learning datafrom the learning data storage unit 200 (step S502). Thereafter, thelearning data reading unit 105 outputs the read learning data to thedata reading control unit 124. The data reading control unit 124 outputsthe acquired learning data to the arithmetic operation instruction unit121.

The arithmetic operation instruction unit 121 selects a next arithmeticoperation in an iteration from the instruction to perform deep learninginput from the user application 101 (step S503).

Then, the arithmetic operation instruction unit 121 outputs a requestfor acquiring an arithmetic data type used in the selected arithmeticoperation to the arithmetic data type decision unit 141. Upon receivingthe acquisition request, the arithmetic data type decision unit 141acquires an 8-bit expressible ratio and a 16-bit expressible ratio in aniteration within a use range of the selected arithmetic operation fromthe expressible ratio database 107 (step S504). However, in a case wherethe iteration is not proceeded and iterations within the use range arenot obtained, the arithmetic data type decision unit 141 determines thatan error occurs in the acquisition of the expressible ratio.

Next, the arithmetic data type decision unit 141 calculates fluctuationsin the 8-bit expressible ratio and the 16-bit expressible ratio by usingthe acquired 8-bit expressible ratio and 16-bit expressible ratio in theformula (4) (step S505). However, in a case where an error occurs in theacquisition of the expressible ratio, the arithmetic data type decisionunit 141 does not calculate the fluctuation in the expressible ratio andremains the fluctuation to be uncalculated.

Next, the arithmetic data type decision unit 141 determines whether ornot a fluctuation in the 8-bit expressible ratio is less than thefluctuation threshold (step S506).

In a case where the fluctuation in the 8-bit expressible ratio is lessthan the fluctuation threshold (step S506: yes), the arithmetic datatype decision unit 141 determines whether or not the latest 8-bitexpressible ratio is larger than the ratio threshold (step S507).

In a case where the latest 8-bit expressible ratio is larger than theratio threshold (step S507: yes), the arithmetic data type decision unit141 determines the arithmetic data type as the 8-bit fixed point (stepS508).

Thereafter, the arithmetic data type decision unit 141 notifies, of thearithmetic operation instruction unit 121, that the 8-bit fixed point isused as the arithmetic data type of the selected arithmetic operation.The arithmetic operation instruction unit 121 makes the arithmeticoperation unit 103 perform the selected arithmetic operation by usingthe 8-bit fixed point (step S509).

On the other hand, in a case where the fluctuation in the 8-bitexpressible ratio is not less than the fluctuation threshold (step S506:no) or in a case where the latest 8-bit expressible ratio is equal to orless than the ratio threshold (step S507: no), the arithmetic data typedecision unit 141 executes the following processing. Here, in a casewhere the fluctuation in the 8-bit expressible ratio is not calculated,the arithmetic data type decision unit 141 determines that thefluctuation is not less than the fluctuation threshold. The arithmeticdata type decision unit 141 determines whether or not a fluctuation inthe 16-bit expressible ratio is less than the fluctuation threshold(step S510).

In a case where the fluctuation in the 16-bit expressible ratio is lessthan the fluctuation threshold (step S510: yes), the arithmetic datatype decision unit 141 determines whether or not the latest 16-bitexpressible ratio is larger than the ratio threshold (step S511).

In a case where the latest 16-bit expressible ratio is larger than theratio threshold (step S511: yes), the arithmetic data type decision unit141 determines the arithmetic data type as the 16-bit fixed point (stepS512).

Thereafter, the arithmetic data type decision unit 141 notifies, of thearithmetic operation instruction unit 121, that the 16-bit fixed pointis used as the arithmetic data type of the selected arithmeticoperation. The arithmetic operation instruction unit 121 makes thearithmetic operation unit 103 perform the selected arithmetic operationby using the 16-bit fixed point (step S513).

On the other hand, in a case where the fluctuation in the 16-bitexpressible ratio is not less than the fluctuation threshold (step S510:no) or in a case where the latest 16-bit expressible ratio is equal toor less than the ratio threshold (step S511: no), the arithmetic datatype decision unit 141 executes the following processing. The arithmeticdata type decision unit 141 determines the arithmetic data type of theselected arithmetic operation as the 32-bit floating point (step S514).Here, in a case where the fluctuation in the 16-bit expressible ratio isnot calculated, the arithmetic data type decision unit 141 determinesthat the fluctuation is not less than the fluctuation threshold.

Then, the arithmetic data type decision unit 141 notifies, of thearithmetic operation instruction unit 121, that the 32-bit floatingpoint is used as the arithmetic data type of the selected arithmeticoperation. The arithmetic operation instruction unit 121 makes thearithmetic operation unit 103 perform the selected arithmetic operationby using the 32-bit floating point (step S515).

Thereafter, the arithmetic data type request unit 122 acquires thearithmetic operation result of the selected arithmetic operation fromthe arithmetic operation unit 103. Then, the arithmetic data typerequest unit 122 outputs the acquired arithmetic operation result to thedatabase update unit 142 and instructs to update the expressible ratiodatabase 107. The database update unit 142 calculates the 8-bitexpressible ratio and the 16-bit expressible ratio by using the tensorelement number included in the input arithmetic operation result (stepS516).

Next, the database update unit 142 stores the calculated 8-bitexpressible ratio and 16-bit expressible ratio in the expressible ratiodatabase 107 (step S517).

The arithmetic operation instruction unit 121 determines whether or notall the arithmetic operation processing in one iteration is completedaccording to whether or not the iteration completion notification isacquired from the arithmetic operation unit 103 (step S518). In a casewhere there is arithmetic operation processing that is not executed(step S518: no), the arithmetic operation instruction unit 121 returnsto step S503.

On the other hand, in a case where all the arithmetic operationprocessing in one iteration has been completed (step S518: yes), thearithmetic operation instruction unit 121 determines whether or not deeplearning is completed (step S519). In a case where deep learning is notcompleted (step S519: no), the arithmetic operation instruction unit 121returns to step S502.

On the other hand, in a case where learning is completed (step S519:yes), the arithmetic operation instruction unit 121 notifies thecompletion of deep learning of the user application 101. Then, thearithmetic operation instruction unit 121 terminates deep learningincluding switching of the arithmetic data types.

As described above, the information processing apparatus according tothe present embodiment determines the arithmetic data type for eachiteration without referring to the previous arithmetic data type. As aresult, occurrence of a state where learning does not proceed due toinsufficient arithmetic operation accuracy after switching thearithmetic data type to the 8-bit fixed point or the 16-bit fixed pointcan be reduced, and learning accuracy can be improved.

Note that the information processing apparatus according to the presentembodiment also may be configured to be able to select automaticswitching to the 8-bit fixed point and the 16-bit fixed point orexecution of all the arithmetic operations with the 32-bit floatingpoint. In a case where the automatic switching to the 8-bit fixed pointand the 16-bit fixed point is selected, the information processingapparatus executes processing similar to the above processing. On theother hand, in a case where the execution of all the arithmeticoperations with the 32-bit floating point is selected, the informationprocessing apparatus performs all the arithmetic operations with the32-bit floating point without switching the arithmetic data type to the8-bit fixed point until deep learning is completed.

All examples and conditional language provided herein are intended forthe pedagogical purposes of aiding the reader in understanding theinvention and the concepts contributed by the inventor to further theart, and are not to be construed as limitations to such specificallyrecited examples and conditions, nor does the organization of suchexamples in the specification relate to a showing of the superiority andinferiority of the invention. Although one or more embodiments of thepresent invention have been described in detail, it should be understoodthat the various changes, substitutions, and alterations could be madehereto without departing from the spirit and scope of the invention.

What is claimed is:
 1. An information processing apparatus comprising: amemory; and a processor coupled to the memory and configured to: performan arithmetic operation using an arithmetic operation target; repeat thearithmetic operation by using a calculated arithmetic operation result;obtain a ratio of, in a first number of elements which are included inthe arithmetic operation result, a second number of elements in anexpressible range as a predetermined-bit fixed point; and perform thearithmetic operation by using the predetermined-bit fixed point based onthe ratio.
 2. The information processing apparatus according to claim 1,wherein the processor is configured to: determine a decimal pointposition based on the first number of elements: and obtain the ratio ofthe second number of elements included in the expressible range as thepredetermined-bit fixed point with the decimal point position.
 3. Theinformation processing apparatus according to claim 1, wherein theprocessor is configured to: perform the arithmetic operation by usingthe predetermined-bit fixed point in a case where the ratio is largerthan a predetermined ratio threshold.
 4. The information processingapparatus according to claim 1, wherein the processor is configured to:obtain the ratio each time when calculating the arithmetic operationresult; and perform the arithmetic operation by using thepredetermined-bit fixed point based on a change in the ratio between alatest ratio and a predetermined-times previous ratio.
 5. Theinformation processing apparatus according to claim 1, wherein theprocessor is configured to: perform the arithmetic operation by using afirst predetermined-bit fixed point or a second predetermined-bit fixedpoint based on the ratio.
 6. The information processing apparatusaccording to claim 1, wherein the processor is configured to: performthe arithmetic operation by using a floating point based on the ratio.7. A control method comprising: performing, by an information processingapparatus, an arithmetic operation using an arithmetic operation target;repeating the arithmetic operation by using a calculated arithmeticoperation result; obtaining a ratio of, in a first number of elementswhich is included in the arithmetic operation result, a second number ofelements in an expressible range as a predetermined-bit fixed point; andmaking the information processing apparatus perform the arithmeticoperation by using the predetermined-bit fixed point based on thecalculated ratio.
 8. A non-transitory computer-readable recording mediumhaving stored therein a control program for causing a computer toexecute a process comprising: performing an arithmetic operation usingan arithmetic operation target: repeating the arithmetic operation byusing a calculated arithmetic operation result: obtaining a ratio of, ina first number of elements which is included in the arithmetic operationresult, a second number of elements in an expressible range as apredetermined-bit fixed point; and performing the arithmetic operationby using the predetermined-bit fixed point based on the calculatedratio.